跳到主要内容

03 DAC

up的视频讲解

从电阻分压开始,理解数字如何决定模拟电压,再认识数据与触发的配合。

1 数字怎样变成电压​

DAC 是数模转换器,把数字量转换成对应的模拟输出。数字值决定输出电平;按一定节奏更新数字值,就能得到随时间变化的波形。

先区分数字输入、模拟电平和连续更新形成的波形。
先区分数字输入、模拟电平和连续更新形成的波形。

本课先用电路模型理解转换原理,再看 DAC 外设框图。课程使用的 STM32F103C8T6 没有片内 DAC,后面的实验通过 IIC 控制外置 DAC 模块。这里的片内 DAC 框图用于理解具备该外设的型号。

2 电阻分压:最直观的转换思路​

把参考电压通过电阻分成许多等级,再用开关选取一个节点,就能得到不同输出电压。

电阻形成多个电压节点,开关负责选择输出。
电阻形成多个电压节点,开关负责选择输出。

依次选择这些电压,会得到阶梯状变化。输出的细腻程度受电压等级数量影响,波形的时间变化还受更新节奏影响。

电平随开关选择逐步变化,形成阶梯波形。
电平随开关选择逐步变化,形成阶梯波形。

如果每一个电压等级都需要独立的选择结构,分辨率升高时,电路规模就会迅速增加。接下来引入另一种组织电阻与开关的方法。

3 R-2R 网络如何形成二进制权重​

R-2R 网络只使用两种比例的电阻。每一位数字控制一个开关,选择参考电压或地;各支路对输出的贡献按二进制权重叠加。

先看电阻比例,再看每个开关的两个连接位置。
先看电阻比例,再看每个开关的两个连接位置。

从三位电路开始推导​

先把电路缩小为三位,使用戴维南等效逐段分析:断开负载求开路电压,再把独立电压源置零,求等效内阻。

从一个局部开始,用等效电压源和等效内阻代替。
从一个局部开始,用等效电压源和等效内阻代替。

把等效部分放回电路,继续分析下一段。每多经过一级,相应贡献再减半,因此形成 1/2、1/4、1/8 这样的权重。

逐段等效后,观察各位对最终输出的权重。
逐段等效后,观察各位对最终输出的权重。

从三位扩展到十二位​

对于本课的理想 N 位模型,数字量 D 对应的电压可以表示为:

Vout = Vref × D ÷ 2N

位数决定可区分的等级数量,数字值决定选中的等级。
位数决定可区分的等级数量,数字值决定选中的等级。

12 位有 4096 个数字编码,D 的范围为 0~4095。模型中的一个最低有效位对应 Vref / 4096。这描述的是分辨率,实际输出还会受到器件误差和负载影响。

4 数据、触发与输出如何配合​

沿 DHR → 控制逻辑 → DOR → 转换器的方向读图。
沿 DHR → 控制逻辑 → DOR → 转换器的方向读图。

在图示片内 DAC 中,程序把数据写入数据保持寄存器 DHR。控制逻辑按配置把它送到输出寄存器 DOR,转换器再据此输出电压。

触发来源决定什么时候更新;数据决定更新成什么值。定时器可以提供周期性触发,DMA 可以接续提供数据。具体哪些能力可用,取决于所用型号或外置器件,不能直接把图中的配置套到课程主控上。